const { app, BrowserWindow, ipcMain, Tray, Menu } = require('electron')
const path = require('path')
const { downloadFile } = require('./func.cjs')

// 定义主程序窗口
let mainWindow
// 创建主程序窗口
const createWindow = () => {
  mainWindow = new BrowserWindow({
    width: 420,
    height: 500,
    // alwaysOnTop: true,
    // x: 1600,
    // y: 100,
    // transparent: true,
    // backgroundColor: '#F5F7FA',
    frame: false,
    resizable: true,
    icon: path.join(__dirname, '../public/drawingBed.png'),
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      devTools: true, //客户端能否打开开发者工具（快捷键：ctrl+shift+i）
    },
  })

  // 设置窗口的最小尺寸
  mainWindow.setMinimumSize(360, 360)
  mainWindow.loadURL('http://127.0.0.1:7022/')

  mainWindow.on('close', (event) => {
    if (!app.isQuiting) {
      event.preventDefault()
      mainWindow.hide()
    }
    // 返回 false ，阻止默认关闭行为
    return false
  })
}

app.whenReady().then(() => {
  createWindow()
  createTrayIcon()
})
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})

// 主程序窗口最小化
ipcMain.on('min-window', () => mainWindow.minimize())
// 切换主窗口最大化
ipcMain.on('max-window', () => {
  if (mainWindow.isMaximized()) mainWindow.unmaximize()
  else mainWindow.maximize()
})
// 确认是否关闭主程序窗口
ipcMain.on('close-window', () => mainWindow.close())

//
//
// 托盘
let tray = null
// 创建托盘图标，以及菜单栏
function createTrayIcon() {
  if (!tray) tray = new Tray(path.join(__dirname, '../public/drawingBed.png'))

  const contextMenu = Menu.buildFromTemplate([
    { label: '显示app', click: () => mainWindow.show() },
    {
      label: '退出app',
      click: () => {
        app.isQuiting = true
        app.quit()
      },
    },
  ])

  tray.setToolTip('图床')
  tray.setContextMenu(contextMenu)
  tray.on('click', () => mainWindow.show())
}

// 下载文件
ipcMain.on('down-file', (_, path) => downloadFile(path, mainWindow))
